The invention relates generally to a method for software discovery in an environment with heterogeneous machine groups. The invention relates further to a system for software discovery in an environment with heterogeneous machine groups, a computing system, a data processing program, and a computer program product.
Software asset management systems provide detailed information about all installed software on computing systems, based on registry/file system scans. Software inventory scans are typically based on information from a software catalogue, which is a collection of discovery signatures for all possible software programs. Such software discovery catalogues can be very extensive due to the number of different software products on the market, not only current but also historical, as well as many different signature types which may be used to discover the same or different product releases.
Every time a software inventory scan is scheduled, all that data in the file system has to be processed and all signatures have to be evaluated. This may consume many resources of the scanned computing systems and may take large amounts of time. The workload generated by the scan procedures may not be available for productive processing.
Another negative effect of such full software scans is that the amount of data returned to a software asset management server may be quite large; in order to aggregate that data many software asset management server resources are additionally required. Moreover, additional network traffic is generated.
There are several disclosures related to a method for software discovery. For example, document U.S. Pat. No. 8,539,445 B2 discloses a method and a corresponding system for discovering software products on a plurality of computers. The discovery method can populate a software catalogue without the manual intervention of an administrator.
Document U.S. Pat. No. 8,438,543 B2 discloses a solution for discovering shared components of software products installed on a data processing system. In order to achieve this result, for each software product the corresponding software components are aggregated into groups; each group includes software components that must be linked by a corresponding relationship, such as a co-location in the same operating system image. This way, it is possible to assign a software component—e.g., a library—available on the system to its software product even when it may be used by more of them.
However, there continues to be a need to address the problem of large overhead when discovering software based on a software catalogue having software signatures.